package com.yylany.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.yylany.bo.Logo;
import com.yylany.pojo.TbCategory;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Description: 用于商品详情数据封装
 *
 * @author <a href="mailto:17777502615@163.com">yaoyonglong</a>
 * @date 2019/1/2
 * @since 1.0.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class GoodsInfo implements Serializable {
    // 基本数据
    /**
     * SKUID
     */
    @JsonProperty("skuid")
    private Integer skuid;
    /**
     * SPUID
     */
    @JsonProperty("spuid")
    private Integer spuid;
    /**
     * "商品名称"
     */
    @JsonProperty("goods_name")
    private String goodsName;

    /**
     * :"价格"
     */
    @JsonProperty("price")
    private Double price;
    /**
     * "库存量"
     */
    @JsonProperty("stock")
    private Integer stock;
    /**
     * "上架时间"
     */
    @JsonProperty("on_sale_date")
    private Date onSaleDate;

    /**
     * //当前sku的排列组合（当前商品信息）
     */
    @JsonProperty("spec_info")
    private Map<String, Object> specInfo;


    // 评论数据
    /**
     * "评论数量"
     */
    @JsonProperty("comment_count")
    private Integer commentCount;
    /**
     * "评论级别(1-5)"
     */
    @JsonProperty("comment_level")
    private Integer commentLevel;

    // spu数据集

    /**
     * "商品描述"
     */
    @JsonProperty("description")
    private String description;
    /**
     * "售后"
     */
    @JsonProperty("aftersale")
    private String aftersale;


//分类数据
    /**
     * id:"分类ID",
     * cat_name:"分类名称"
     */
    @JsonProperty("cat1_info")
    private TbCategory cat1Info;
    @JsonProperty("cat2_info")
    private TbCategory cat2Info;
    @JsonProperty("cat3_info")
    private TbCategory cat3Info;

    //图片数据
    /**
     * 默认显示的图片
     */
    @JsonProperty("logo")
    private Logo logo;
    /**
     * 用于显示其余的图片
     */
    @JsonProperty("photos")
    private List<Logo> photos;


    // 规格数据
    /**
     * com.yylany.service.SpecificationService#specifications(int)使用这个方法进行 查询得到
     */
    @JsonProperty("spec_list")
    private List<Map<String, Object>> specList;


    /**
     * 所有的排列组合对应它的skuid
     */
    @JsonProperty("sku_list")
    private List<Map<String, Object>> skuList;


}
